﻿using System;

using Fuse8.DomainFramework.Domain;

namespace Fuse8.DomainFramework.BusinessService
{
    /// <summary>
    /// 
    /// </summary>
    /// <typeparam name="TEntity"></typeparam>
    /// <typeparam name="TKey"></typeparam>
    public class EntityEventArgs<TEntity, TKey> : EventArgs 
        where TEntity : class, IEntityObject<TKey>
        where TKey : IComparable<TKey>, IEquatable<TKey> 
    {
        /// <summary>
        /// Returns the class for which the event has been raised
        /// </summary>
        public TEntity Entity { get; internal set; }

        /// <summary>
        /// Returns entity identificator
        /// </summary>
        public TKey Id { get; internal set; }

        /// <summary>
        /// 
        /// </summary>
        public EntityEventArgs()
            : base()
        { }
    }
}
